草庐IT

Servlet4.0 Response

全部标签

java - 如何在 servlet 过滤器中重定向?

我正在尝试找到一种方法将我的请求从过滤器重定向到登录页面,但我不知道如何从servlet重定向。我已经搜索过,但我发现的是sendRedirect()方法。我在过滤器中的响应对象上找不到此方法。原因是什么?我该如何解决这个问题? 最佳答案 在过滤器中,响应是ServletResponse而不是HttpServletResponse。因此对HttpServletResponse进行强制转换。HttpServletResponsehttpResponse=(HttpServletResponse)response;httpRespons

java - Servlet-3 Async Context,如何进行异步写入?

问题描述Servlet-3.0API允许分离请求/响应上下文并在稍后回复它。但是,如果我尝试写入大量数据,例如:AsyncContextac=getWaitingContext();ServletOutputStreamout=ac.getResponse().getOutputStream();out.print(some_big_data);out.flush()对于Tomcat7和Jetty8,它实际上可能会阻塞-而且它确实会阻塞在琐碎的测试用例中。教程建议创建一个线程池,该线程池将处理这样的设置-女巫通常与传统的10K架构相反。但是,如果我有10,000个打开的连接和一个线程池

java - 对 Java Servlet 进行单元测试

我想知道对servlet进行单元测试的最佳方法是什么。测试内部方法只要不引用servlet上下文就没有问题,但是测试doGet/doPost方法以及引用上下文或使用session参数的内部方法呢?有没有一种方法可以简单地使用JUnit等经典工具,或者最好使用TestNG?我需要嵌入tomcat服务器或类似的东西吗? 最佳答案 大多数时候,我通过“集成测试”而不是纯单元测试来测试Servlet和JSP。有大量适用于JUnit/TestNG的附加组件,包括:HttpUnit(最古老和最著名的,非常低的级别,根据您的需要可能是好是坏)Ht

java - 如何映射 "root"Servlet 以便其他脚本仍可运行?

我正在尝试构建一个调用JSP页面的Servlet,类似于以下内容:publicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletException{req.getRequestDispatcher("/WEB-INF/main.jsp").forward(req,resp);}我需要这个Servlet来响应域的根目录(例如:http://example.com/)所以我在web.xml中使用了以下映射:MainServlet/*我遇到的问题是这匹配所有内容,因此当调度程序转发

java - javax.servlet 在哪里?

我已经安装了jdk1.6.0_13,但是当我尝试查找javax.servlet包时,或者按Ctrl+Servlet之后的Eclipse中的>Space我什么也得不到。我在哪里可以下载这个包,为什么它没有包含在开发者的标准分发中? 最佳答案 javax.servlet是一个包,它是JavaEE(Java企业版)的一部分。您已经获得了适用于JavaSE(Java标准版)的JDK。您可以使用theJavaEESDK例如。另一种简单的servlet容器,例如ApacheTomcat也附带此API(查找servlet-api.jar)。

java - Servlet 与过滤器

Servlet和Filter有什么区别?您建议使用什么来授权页面? 最佳答案 当您想根据特定条件过滤和/或修改请求时,请使用Filter。当您想要控制、预处理和/或后处理请求时,请使用Servlet。JavaEEtutorial提到以下有关过滤器的内容:Afilterisanobjectthatcantransformtheheaderandcontent(orboth)ofarequestorresponse.Filtersdifferfromwebcomponentsinthatfiltersusuallydonotthemse

java - 在/*上映射全局前端 Controller servlet时如何访问静态资源

我已将SpringMVC调度程序映射为/*上的全局前端Controllerservlet。homeorg.springframework.web.servlet.DispatcherServlethome/*但是,此映射会阻止对/res/文件夹中的CSS、JS、图像等静态文件的访问。我怎样才能访问它们? 最佳答案 将Controllerservlet映射到更具体的url-pattern上,例如/pages/*,将静态内容放在特定文件夹中,例如/static并创建一个Filter监听/*透明地继续任何静态内容的链并将请求分派(disp

java - Tomcat servlet 应用程序的后台线程

这个问题在这里已经有了答案:Howtorunabackgroundtaskinaservletbasedwebapplication?(5个回答)关闭7年前。我对Tomcat不是很熟悉,在我看来,它基本上被抽象为一个cgi服务器,可以在调用之间保存JVM——不过我知道它可以做的远不止这些。我正在寻找一种在Tomcat服务器启动时启动background线程的方法,该线程会定期更新服务器上下文(在我的特定情况下,这是一个监听来自其他人的心跳的线程服务和更新可用性信息,但可以想象它的多种用途)。有没有标准的方法来做到这一点?上下文的启动和更新/查询?任何指向相关文档和/或代码示例的指针将不

java - 编译错误 : package javax. servlet 不存在

我有一个包,我在其中导入javax.servlet.*和javax.servlet.http.*当我尝试在命令提示符下编译它时,我得到了错误packagejavax.servletdoesnotexist我使用JDK1.7.0和Tomcat6.0。 最佳答案 您需要将Tomcat的/lib/servlet-api.jar文件的路径添加到编译时类路径中。javac-cp.;/path/to/Tomcat/lib/servlet-api.jarcom/example/MyServletClass.java类路径是Java需要查找导入依赖

java - 如何从 Servlet 过滤器中的 ServletResponse 中获取 HTTP 状态代码?

我正在尝试报告从我的web应用返回的每个HTTP状态代码。但是,状态代码似乎无法通过ServletResponse访问,或者即使我将其转换为HttpServletResponse。有没有办法在ServletFilter中访问这个值? 最佳答案 首先,您需要将状态代码保存在可访问的位置。最好将响应与您的实现一起包装并保留:publicclassStatusExposingServletResponseextendsHttpServletResponseWrapper{privateinthttpStatus;publicStatusE